package futbolfacil.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import futbolfacil.excepcion.DAOExcepcion;
import futbolfacil.modelo.Alquiler;
import futbolfacil.modelo.AlquilerDetalle;
import futbolfacil.modelo.Cancha;
import futbolfacil.modelo.Horario;
import futbolfacil.modelo.Local;
import futbolfacil.util.ConexionBD;

public class AlquilerDetalleDAO extends BaseDAO{
	
	//Felix Paragulla
	public void insertar(AlquilerDetalle objAlquilerDet, Integer codigocab) throws DAOExcepcion {
		System.out.println("AlquilerDetalle: insertar(Alquiler objAlquilerDet, Integer codigocab)");
		
		//existe(objAlquilerDet.getCodigoCancha(), objAlquilerDet.getHoraini(), objAlquilerDet.getHorafin());		
		
		String query = "INSERT INTO alquiler_detalle(ART_COD, ALQ_NRO, ALQ_DET_PREC,ALQ_DET_HOR_INI,ALQ_DET_HOR_FIN,ALQ_DET_CAN) " +
						"VALUES (?,?,?,?,?,?)";
		
		Connection con = null;
		PreparedStatement stmt = null;
		
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);		
			stmt.setInt(1, objAlquilerDet.getCancha().getCodigoCancha());
			stmt.setInt(2, codigocab);
			stmt.setDouble(3, objAlquilerDet.getPrecio());
			stmt.setString(4,objAlquilerDet.getHoraini());
			stmt.setString(5,objAlquilerDet.getHorafin());
			stmt.setDouble(6, objAlquilerDet.getCant());
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}
			System.out.println("Se registro correctamente \n");
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
	}
	
	private boolean existe(Integer cancha, String horaini, String horafin) {
		System.out.println("AlquilerDetalleDAO: existe(int artcod, String horaini, String horafin)");
		
		String query = "SELECT * FROM articulo WHERE ART_COD = ? AND ALQ_DET_HOR_INI=? AND ALQ_DET_HOR_FIN=?";
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			stmt.setInt(1, cancha);
			stmt.setString(2, horaini);
			stmt.setString(3,horafin);
			rs = stmt.executeQuery();
			
			if (rs.next()){
				return true;
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		
		return false;
	}	

	
	
		
}
